package com.share.iostream;

import java.io.*;

/**
 * 
 * @author Johnny Tam
 * 
 * 使用DataOutputStream/ DataInputStream 写入或读取java基础类型变量值。
 * 搭配使用 ByteArrayOutPutStream, ByteArrayInputStream作为DataStream的构造参数
 * Math.random => writeDouble
 * Boolean => writeBoolean
 */
public class TestDataStream {
	public static void main(String[] args) {
		
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		DataOutputStream dos = new DataOutputStream(baos);
		
		try {
			dos.writeDouble(Math.random());
			dos.writeBoolean(true);
			dos.writeInt(100);
			
			ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());			
			System.out.println(bais.available());// 有多少个字节可以读
			
			DataInputStream dis = new DataInputStream(bais);
			
			System.out.println(dis.readDouble());// 采用队列，先进先出。。
			System.out.println(dis.readBoolean());
			System.out.println(dis.readInt());
			
			dos.close();
			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}